const path = require('path')
// const webpack = require('webpack')
const px2rem = require('postcss-px2rem')
// 配置基本大小
const postcss = px2rem({
    // 基准大小 baseSize，需要和rem.js中相同
    remUnit: 16
})

function resolve(dir) {
    return path.join(__dirname, dir)
}
module.exports = {
    lintOnSave: true,
    css: {
        loaderOptions: {
            postcss: {
                plugins: [
                    postcss
                ]
            }
        }
    },
    publicPath: './',
    chainWebpack: config => {
        config.when(process.env.NODE_ENV === 'production', config => {
            config.entry('app').clear().add('./src/main-prod.js')
            // config.set('externals', {
            //     vue: 'Vue',
            //     // 'vue-router': 'VueRouter',
            //     axios: 'axios',
            //     echarts: 'echarts',
            //     nprogress: 'NProgress'
            // })
        })
        config.when(process.env.NODE_ENV === 'development', config => {
            config.entry('app').clear().add('./src/main-dev.js')
        })

        // 清空默认svg规则
        config.module
            .rule('svg')
            .uses.clear()
        config.module //针对svg文件添加svg-sprite-loader规则
            .rule('svg1')
            .test(/\.svg$/)
            .use('svg-sprite-loader')
            .loader('svg-sprite-loader')
            .options({
                symbolId: 'icon-[name]'
            })
            .end()

    },
    devServer: {
        proxy: {
            '/api': {
                // 此处的写法，我访问的是http://localhost:8080/api/dataHome.json设置代理后，axios请求不需要把域名带上，只需要把路径前面加上 /api 即可。
                // target: 'http://localhost:8080/',
                target: 'https://www.xiangqian.club:8001/',
                // 允许跨域
                // 在本地会创建一个虚拟服务端，然后发送请求的数据，并同时接收请求的数据，这样服务端和服务端进行数据的交互就不会有跨域问题
                changeOrigin: true,

                // 是否代理
                ws: true,

                // 路径重置
                // 由于设置了 pathRewrite，所以请求时会把 /api 替换成 ''，最终的请求路径为 /dataHome.json
                pathRewrite: {
                    '^/api': ''
                }
            }
        }
    }
    // pluginOptions: {
    //     svgSprite: {
    //         dir: 'src/icons/svg/',
    //         test: /\.(svg)(\?.*)?$/,
    //         loaderOptions: {
    //             extract: true,
    //             spriteFilename: 'icons.[hash:8].svg' // or 'img/icons.svg' if filenameHashing == false
    //         },
    //         pluginOptions: {
    //             plainSprite: true
    //         }
    //     }
    // }
}
